<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	<title>rdebug_set_breakpoint: common_schema documentation</title>
	<meta name="description" content="rdebug_set_breakpoint: common_schema" />
	<meta name="keywords" content="rdebug_set_breakpoint: common_schema" />
	<link rel="stylesheet" type="text/css" href="css/style.css" />
</head>

<body>
	<div id="main">
		<div id="header">
			<h1>common_schema</h1> <strong>2.2</strong> documentation
			<div class="subtitle">DBA's framework for MySQL</div>
		</div>
		<div id="contentwrapper">
			<div id="content">
				<h2><a href="rdebug_set_breakpoint.html">rdebug_set_breakpoint</a></h2>	
<h3>NAME</h3>
rdebug_set_breakpoint(): Set/clear a breakpoint

<h3>TYPE</h3>
Procedure

<h3>DESCRIPTION</h3>
<p>
	This procedure is part of the <a href="rdebug_api.html">rdebug API</a>.
</p>
<p>
	<i>rdebug_set_breakpoint()</i> sets or clears a specific breakpoint in a specified
	routine. 
</p>

<p>
	A breakpoint is indicated by breakpoint/statement ID, as can be listed via
	<a href="rdebug_show_routine.html">rdebug_show_routine()</a> or
	<a href="rdebug_show_routine_statements.html">rdebug_show_routine_statements()</a>.
</p>
<p>
	A breakpoint may be conditional <strong>[NOTE: as yet unsupported]</strong>, such that
	it only applies when some condition evaluates as true 
	(e.g. <strong>'my_loop_counter > 3'</strong>).
</p>
<p>
	Current implementation <strong>[NOTE: subject to change]</strong> associates
	breakpoints with debug sessions, so that concurrent debuggers can have different 
	breakpoints on same routines, without affecting one another.
	As result,
	execution of this routine only makes sense on an active debugging session, i.e.
	after calling <a href="rdebug_start.html">rdebug_start()</a> <strong>[NOTE: subject to change]</strong>.

</p>

<h3>SYNOPSIS</h3>
<p>
<blockquote><pre>rdebug_set_breakpoint(
    in rdebug_routine_schema varchar(128) charset utf8,
    in rdebug_routine_name   varchar(128) charset utf8,
    in rdebug_statement_id   int unsigned,
    in rdebug_conditional_expression text charset utf8,
    in breakpoint_enabled bool
  )
  READS SQL DATA
</pre></blockquote>
</p>
<p>
  Input: 
  <ul>
    <li><strong>rdebug_routine_schema</strong>: schema where routine is located.
	</li>
    <li><strong>rdebug_routine_name</strong>: name of routine schema.
	</li>
    <li><strong>rdebug_statement_id</strong>: name of routine where breakpoint applies.
	</li>
    <li><strong>rdebug_conditional_expression</strong>: 
    	<strong>AS YET UNSUPPORTED</strong> - expression to evaluate upon reaching breakpoint.
    	The breakpoint holds only when the expression evaluates to <strong>TRUE</strong> value; otherwise
    	the breakpoint is skipped by such commands as <a href="rdebug_run.html">rdebug_run()</a>.
	</li>
    <li><strong>breakpoint_enabled</strong>: a <strong>TRUE/FALSE</strong> or <strong>1/0</strong> value
    	to indicate whether the breakpoint should be set or cleared, respectively.
	</li>
  </ul>
</p>


<h3>EXAMPLES</h3>
	<p>
		Show routine code with breakpoint positions (IDs), then set a breakpoint:
	<blockquote><pre>mysql&gt; call rdebug_show_routine('test','analyze_continents');
+-------------------------------------------------------------+
| `test`.`analyze_continents` breakpoints                     |
+-------------------------------------------------------------+
| main_body: begin                                            |
|   declare done bool default false;                          |
|   declare current_continent varchar(32) default null;       |
|   declare continents_cursor cursor for                      |
|             select distinct continent from world.Country;   |
|   declare continue handler for not found set done := true;  |
|                                                             |
|   [:80]open continents_cursor;                              |
|   [:86]cursor_loop: while not done do                       |
|     [:98]fetch continents_cursor into current_continent;    |
|     [:108]if done then                                      |
|       [:115]leave cursor_loop;                              |
|     [:121]end if;                                           |
|     [:127]call analyze_continent_cities(current_continent); |
|   [:136]end while;                                          |
|   [:142]close continents_cursor;                            |
| [:147]end                                                   |
+-------------------------------------------------------------+

mysql&gt; call rdebug_set_breakpoint('test', 'analyze_continents', 127, null, TRUE);
</pre></blockquote>
</p>
	<p>
		Remove the above breakpoint:
	<blockquote><pre>mysql&gt; call rdebug_set_breakpoint('test', 'analyze_continents', 127, null, FALSE);
</pre></blockquote>
</p>

<h3>ENVIRONMENT</h3>
MySQL 5.1 or newer

<h3>SEE ALSO</h3>
<a href="rdebug_run.html">rdebug_run()</a>,
<a href="rdebug_show_routine.html">rdebug_show_routine()</a>,
<a href="rdebug_show_routine_statements.html">rdebug_show_routine_statements()</a>

<h3>AUTHOR</h3>
Shlomi Noach
				<br/>
			</div>
			<div id="sidebarwrapper">
				<div id="search">
					Search online documentation
					<form id="search_form" name="search_form" method="GET" 
						action="http://www.google.com/search" 
						onsubmit="document.forms['search_form']['q'].value = 'site:http://common-schema.googlecode.com/svn/trunk/common_schema/doc/html/ '+document.forms['search_form']['search_term'].value;">
						<input type="text" name="search_term" value=""/>
						<input type="hidden" name="q" value=""/>
						<input type="submit" value="go"/>						
					</form>
				</div>
				<div id="menu">
					<ul>
						<li><a title="Introduction" href="introduction.html">Introduction</a></li>
						<li><a title="Documentation" href="documentation.html">Documentation</a></li>
						<li><a title="Download" href="download.html">Download</a></li>
						<li><a title="Install" href="install.html">Install</a></li>
						<li><a title="Risks" href="risks.html">Risks</a></li>
					</ul>						
					<h3>QUERY SCRIPT</h3>
					<ul>
						<li><a title="QueryScript" href="query_script.html">QueryScript</a></li>
						<li><a title="Execution" href="query_script_execution.html">Execution</a></li>
						<li><a title="Flow control" href="query_script_flow_control.html">Flow control</a></li>
						<li><a title="Statements" href="query_script_statements.html">Statements</a></li>
						<li><a title="Expressions" href="query_script_expressions.html">Expressions</a></li>
						<li><a title="Variables" href="query_script_variables.html">Variables</a></li>
					</ul>						
					<h3>DEBUG</h3>
					<ul>
						<li><a title="rdebug" href="rdebug.html">rdebug</a></li>
						<li><a title="rdebug API" href="rdebug_api.html">rdebug API</a></li>
						<li><a title="rdebug workflow" href="rdebug_workflow.html">Workflow</a></li>
					</ul>						
					<h3>ROUTINES</h3>
					<ul>
						<li><a title="Execution &amp; flow control" href="execution_routines.html">Execution & flow control</a></li>
						<li><a title="General" href="general_routines.html">General</a></li>
						<li><a title="Process" href="process_routines.html">Process</a></li>
						<li><a title="Query analysis" href="query_analysis_routines.html">Query analysis</a></li>
						<li><a title="Schema analysis" href="schema_analysis_routines.html">Schema analysis</a></li>
						<li><a title="Security" href="security_routines.html">Security</a></li>
						<li><a title="Text" href="text_routines.html">Text</a></li>
						<li><a title="Time &amp; date" href="temporal_routines.html">Time & date</a></li>
						<li><a title="Charting" href="charting_routines.html">Charting</a></li>
					</ul>
					<h3>VIEWS</h3>
					<ul>
						<li><a title="Schema analysis" href="schema_analysis_views.html">Schema analysis</a></li>
						<li><a title="Data dimension" href="data_dimension_views.html">Data dimension</a></li>
						<li><a title="Process" href="process_views.html">Process</a></li>
						<li><a title="Security" href="security_views.html">Security</a></li>
						<li><a title="Monitoring" href="monitoring_views.html">Monitoring</a></li>
						<li><a title="InnoDB Plugin" href="innodb_plugin_views.html">InnoDB Plugin</a></li>
						<li><a title="Percona server" href="percona_server_views.html">Percona Server</a></li>
						<li><a title="TokuDB" href="tokudb_views.html">TokuDB</a></li>
					</ul>						
					<h3>DATA</h3>
					<ul>
						<li><a title="tables" href="tables.html">Tables</a></li>
						<li><a title="variables" href="variables.html">Variables</a></li>
					</ul>						
					<h3>META</h3>
					<ul>
						<li><a title="Help" href="help.html">help</a></li>
						<li><a title="Metadata" href="metadata.html">metadata</a></li>
						<li><a title="status" href="status.html">status</a></li>
					</ul>						
				</div>
			</div>	
			<div class="clear">&nbsp;</div>
			
			<div id="footnote" align="center">
				<a href="">common_schema</a> documentation
			</div>
		</div>
	</div>
</body>
</html>
